// 引入一个包
const path = require("path");
// 引入 html 插件
const HTMLWebpackPlugin = require("html-webpack-plugin");
// 引入clean插件
const { CleanWebpackPlugin } = require("clean-webpack-plugin");

// webpack中的使用配置信息都应该写在module.exports中
module.exports = {
  entry: "./src/index.ts", //入口文件
  output: {
    // 输出文件的目录
    path: path.resolve(__dirname, "dist"), // 绝对路径
    filename: "bundle.js", // 打包后文件的名字
  },
  module: {
    // 指定webpack打包时使用的模块
    rules: [
      // 详细配置
      {
        test: /\.ts$/, // 用正则表达式匹配文件名
        use: "ts-loader", // 要使用的loader
        exclude: /node_modules/, // 排除node_modules文件夹
      },
    ],
  },
  // 配置webpack的插件
  plugins: [
    new HTMLWebpackPlugin({
      template: "./src/index.html", // 使用已有的html文件作为模板
      title: "自定义title",
    }),
    new CleanWebpackPlugin(),
  ],
  // 设置引用模块
  resolve: {
    extensions: [".ts", ".js"], // 引用模块时，可以省略后缀名
  },
};
